CodePipeline Tips
CodePipelineは、なぁなぁでもなんとなく使えるサービスではある。
ただ、ちゃんと使いこなすためには公式ドキュメントをちゃんと読んで理解してた方がいい。
このページは迷いやすそうなところをTipsとして残す自分の備忘録にもなってる。
ポイント
アクション間での情報のやり取りにはアーティファクトを用いる
Codepipeline1つに対してサービスロールがあるが、アクション毎に別ロールを設定することも可能
アクション間での情報のやり取りにはアーティファクトを用いる
この概念を覚えておくことが一番大事。
CodePipelineは「アクションで繋がってる」ってことを覚えておきつつ、その繋がりを実現するのがアーティファクトだとも覚えておく。
https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/Hi-Level-PipelineFlow.png
onigiri.w2.icon的覚えておきたいこと
アーティファクトストアは1つのS3バケットが担う
リージョンごとにアーティファクトストアは作られる(つまりリージョンごとに1バケット)
新しいパイプラインが作られるたびに、アーティファクトストアにそのパイプライン用のフォルダが切られる。
コンソールを使用して最初のパイプラインを作成すると、CodePipeline は同じ AWS リージョンに Amazon S3 バケットを作成し、すべてのパイプラインのアイテムを格納します。コンソールを使用してそのリージョンに別のパイプラインを作成するたびに、CodePipeline はバケット内にそのパイプライン用のフォルダを作成します。
もしアーティファクトストアが指定されてなければ、codepipeline-<region>-<random>という名前で勝手に作成される。
アクション毎に入力/出力アーティファクトを決めることができる
以前のアクションで出力されたアーティファクトでないと、以降のアクションの入力アーティファクトにできない。
https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/codepipeline-artifactsexplained.png
Codepipeline1つに対してサービスロールがあるが、アクション毎に別ロールを設定することも可能
アクションでの動作で利用される権限は、デフォルトでCodePipeline作成時のロールが利用される。
ただし、もし特定のアクションで別の権限を利用したいなら、アクションの設定で別ロールを設定すればいい。
その際、デフォルトロール(CodePipeline作成時に付与したロール)に対象ロールへのAssumeRole権限を与えておかないといけない!!!
そういう仕様。